package com.sg.dto.biz.calc.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * @desc AddFinancialPlannMqRedisQueueComReqDto
 * @使用场景
 */
@Data
public class AddFinancialPlannMqRedisQueueComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 冗余评价模板ID
     */
    @NotNull(message = "MQ队列唯一主键ID不能为空")
    @ApiModelProperty("MQ队列唯一主键ID")
    private String evaluationTemplateId;

    /**
     * 排队值
     */
    @NotNull(message = "排队值不能为空")
    @ApiModelProperty("排队值")
    private String queueNum;

    /**
     * 上一更新周期ID
     */
    @ApiModelProperty("上一更新周期ID")
    private String preUpdateCycleId;

    /**
     * 更新周期ID
     */
    @NotNull(message = "更新周期ID不能为空")
    @ApiModelProperty("更新周期ID")
    private String updateCycleId;

    /**
     * 更新周期开始时间
     */
    @NotNull(message = "更新周期开始时间不能为空")
    @ApiModelProperty("更新周期开始时间")
    private Date updateCycleStartTime;

    /**
     * 更新周期结束时间
     */
    @NotNull(message = "更新周期结束时间不能为空")
    @ApiModelProperty("更新周期结束时间")
    private Date updateCycleEndTime;

    /**
     * 更新周期类型标识
     */
    @NotNull(message = "更新周期类型标识不能为空")
    @ApiModelProperty("更新周期类型标识")
    private String updateCycleTypeCode;

    /**
     * 被评对象目标周期ID
     */
    @NotNull(message = "被评对象目标周期ID不能为空")
    @ApiModelProperty("被评对象目标周期ID")
    private String evaObjTargetCycleId;

    /**
     * 关联归属主体标识
     */
    @NotNull(message = "关联归属主体标识不能为空")
    @ApiModelProperty("关联归属主体标识")
    private String accountContentCode;

    /**
     * 是否开启资金到账 TRUE:是 FALSE:否
     */
    @NotNull(message = "是否开启资金到账不能为空")
    @ApiModelProperty("是否开启资金到账")
    private String isOpenFundsArrival;

    /**
     * 周期模式
     */
    @NotNull(message = "周期模式不能为空")
    @ApiModelProperty("周期模式")
    private String cycleMode;

    /**
     * 操作人就职记录ID
     */
    @NotNull(message = "操作人就职记录ID不能为空")
    @ApiModelProperty("操作人就职记录ID")
    private String operationInductionId;

    /**
     * 空间ID
     */
    @NotNull(message = "空间ID不能为空")
    @ApiModelProperty("空间ID")
    private String spaceId;

    /**
     * 事务内数据更新批次标识
     */
    @NotNull(message = "事务内数据更新批次标识不能为空")
    @ApiModelProperty("事务内数据更新批次标识")
    private String eventBatchUpdateCode;

    /**
     * 计算开始时间
     */
    @NotNull(message = "计算开始时间不能为空")
    @ApiModelProperty("计算开始时间")
    private String calcStartTime;

    /**
     * 冗余单位
     */
    @NotNull(message = "冗余单位不能为空")
    @ApiModelProperty("冗余单位")
    private String unit;

    /**
     * 创建于联盟应用ID
     */
    @NotNull(message = "创建于联盟应用ID不能为空")
    @ApiModelProperty("创建于联盟应用ID")
    private String appId;

}
